package top.haijunit.common.redis.annotation;

import java.lang.annotation.*;

/**
 * 基于redisson的分布式锁
 *
 * @author zhanghaijun
 * @since 2024-07-31
 */
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RedissonLock {

    /**
     * 加锁key,SpEL表达式
     * 参考@Cacheable注解的key设置
     *
     * @return lockKey
     */
    String lockKey();

    /**
     * 等待时间,单位毫秒,默认3秒
     *
     * @return 等待时间
     */
    long waitTime() default 3000L;

    /**
     * 使用时间,单位毫秒,默认5秒
     *
     * @return 使用时间
     */
    long leaseTime() default 5000L;
}
